home *** CD-ROM | disk | FTP | other *** search
- 10 '*********************************************************
- 20 ' JISキーボード速打ち練習 V0.5 L3
- 30 ' 1991.10. 7~1993. 2.10 (C) おこめ
- 40 '*********************************************************
- 50 'データは最後にあるよ
- 60 '辞全R英小 辞全R英大 辞全Rかな 辞全Rカナ
- 70 '辞全 英小 辞全 英大 辞全 かな 辞全 カナ
- 80 '辞 R英小 辞 R英大 辞 Rかな 辞 Rカナ
- 90 '辞 英小 辞 英大 辞 かな 辞 カナ
- 100 ' 全R英小 全R英大 全Rかな 全Rカナ V2.1
- 110 ' 全 英小 全 英大 全 かな 全 カナ V2.1
- 120 ' R英小 R英大 Rかな Rカナ
- 130 ' 英小 英大 かな カナ
- 140 CLEAR ,,512,100000,0:DEFINT A-Z
- 150 COLOR 7,0,7,4:WIDTH 80,25:CONSOLE 14,10,2
- 160 SCREEN@2:CLS:SP=10
- 170 DIM X(262),Y(262),X2(262),Y2(262),M(1000),M2(1000),HK(255),KH$(255)
- 180 DIM TY(100),MD$(10)
- 190 PALETTE 1,[127,127,127],1
- 200 PALETTE 2,[0,0,255],1
- 210 LINE(0,0)-(639,260),PSET,%2,BF
- 220 FOR I=3 TO 255
- 230 PALETTE I,[I,255,I]:NEXT
- 240 READ A$:IF A$<>"" THEN KH$(ASC(A$))=MID$(A$,2):HK(ASC(MID$(A$,3)))=ASC(A$):GOTO 240
- 250 FOR M=0 TO 1
- 260 FOR J=0 TO 3:READ A,K
- 270 IF M THEN 290
- 280 LINE(50,70+J*32)-(530,102+J*32),PSET,0,BF,%1
- 290 FOR I=0 TO A
- 300 IF M THEN 320
- 310 LINE(I*32+K,70+J*32)-STEP(32,32),PSET,0,BF,7
- 320 READ L
- 330 X(L)=I*32+K:Y(L)=70+J*32:X2(L)=32:Y2(L)=32
- 340 IF M THEN 360
- 350 SYMBOL(X(L)+M*16+2,Y(L)+M*8+9),AKCNV$(CHR$(L)),1,1,0:GOTO 370
- 360 SYMBOL(X(L)+M*16+2,Y(L)+M*8+9),KH$(L),1,1,0
- 370 NEXT I,J,M
- 380 FOR I=0 TO 9
- 390 READ MD$(I)
- 400 NEXT
- 410 LINE(50,198)-(530,230),PSET,0,BF,%1
- 420 X(32)=194:Y(32)=198:X2(32)=160:Y2(32)=32
- 430 X(13)=490:Y(13)=102:X2(13)=40:Y2(13)=64
- 440 X(257)=146:Y(257)=198:X2(257)=48:Y2(257)=32 'CAP
- 450 X(258)=50:Y(258)=198:X2(258)=48:Y2(258)=32 'ひらがな
- 460 X(259)=410:Y(259)=198:X2(259)=72:Y2(259)=32 'カタカナ
- 470 X(260)=545:Y(260)=75:X2(260)=32:Y2(260)=32 '半角/全角
- 480 X(261)=354:Y(261)=198:X2(261)=56:Y2(261)=32 'かな漢字
- 490 X(262)=50:Y(262)=134:X2(262)=56:Y2(262)=32 'CTRL
- 500 DATA ヌぬ,フふ,アあ,ウう,エえ,オお,ヤや,ユゆ,ヨよ,ワわ,ホほ,ヘへ,ーー
- 510 DATA タた,テて,イい,スす,カか,ンん,ナな,ニに,ラら,セせ,゙゛,゚゜
- 520 DATA チち,トと,シし,ハは,キき,クく,マま,ノの,リり,レれ,ケけ,ムむ
- 530 DATA ツつ,サさ,ソそ,ヒひ,コこ,ミみ,モも,ネね,ルる,メめ,ロろ
- 540 DATA ァぁ,ゥぅ,ェぇ,ォぉ,ャゃ,ュゅ,ョょ,ヲを
- 550 DATA ィぃ,「「,」」,ッっ,、、,。。,・・,""
- 560 DATA 12,82,49,50,51,52,53,54,55,56,57,48,45,94,92
- 570 DATA 11,98,81,87,69,82,84,89,85,73,79,80,64,91
- 580 DATA 11,106,65,83,68,70,71,72,74,75,76,59,58,93
- 590 DATA 10,122,90,88,67,86,66,78,77,44,46,47,34
- 600 DATA 12,82,199,204,177,179,180,181,212,213,214,220,206,205,176
- 610 DATA 11,98,192,195,178,189,182,221,197,198,215,190,222,223
- 620 DATA 11,106,193,196,188,202,183,184,207,201,216,218,185,209
- 630 DATA 10,122,194,187,191,203,186,208,211,200,217,210,219
- 640 DATA " ","辞"," ","全"," ","R","英小","英大","カナ","かな"
- 650 LINE(X(32),Y(32))-STEP(X2(32),Y2(32)),PSET,0,B
- 660 LINE(X(13),Y(13))-STEP(X2(13),Y2(13)),PSET,0,BF,%1
- 670 LINE(X(257),Y(257))-STEP(X2(257),Y2(257)),PSET,0,BF,%1
- 680 LINE(98,198)-STEP(96,32),PSET,0,B
- 690 LINE(410,198)-STEP(72,32),PSET,0,B
- 700 LINE(210,150)-STEP(16,2),PASTEL,0,BF
- 710 LINE(306,150)-STEP(16,2),PASTEL,0,BF
- 720 SYMBOL(53,79),"ESC",1,1,0,,,1
- 730 SYMBOL(61,111),"TAB",1,1,0,,,1
- 740 SYMBOL(61,143),"CTRL",1,1,0,,,1
- 750 SYMBOL(65,175),"SHIFT",1,1,0,,,1
- 760 SYMBOL(507,79),"←",1,1,%1,,,8
- 770 SYMBOL(483,175),"SHIFT",1,1,0,,,1
- 780 SYMBOL(54,207),"ひらがな",.6!,1,0,,,1
- 790 SYMBOL(109,207),"ALT",1,1,0,,,1
- 800 SYMBOL(157,207),"CAP",1,1,0,,,1
- 810 SYMBOL(367,201),"かな",1,.9!,0,,,1
- 820 SYMBOL(367,215),"漢字",1,.9!,0,,,1
- 830 SYMBOL(415,207),"カタカナ",1,1,0,,,1
- 840 SYMBOL(491,207),"取消",1,1,0,,,1
- 850 READ A$:IF A$="" THEN SP=SP-1:RESTORE 850:IF SP=0 THEN END ELSE 850
- 860 LOCATE 10,CSRLIN:PRINT A$:LOCATE 10,CSRLIN
- 870 '文字コード判別
- 880 I=ASC(A$)
- 890 IF I<&H20 OR I=&H7F THEN 1000
- 900 IF I=&H20 THEN MD=8:MD2=0:GOTO *MODES
- 910 IF I>&H20 AND I<&H41 THEN MD=10:MD2=0:GOTO *MODES
- 920 IF I>&H40 AND I<&H5B THEN MD=11:MD2=1:GOTO *MODES
- 930 IF I>&H5A AND I<&H61 THEN MD=10:MD2=0:GOTO *MODES
- 940 IF I>&H60 AND I<&H7B THEN MD=11:MD2=0:GOTO *MODES
- 950 IF I>&H7A AND I<&H7F THEN MD=10:MD2=0:GOTO *MODES
- 960 IF I>&H7F AND I<&HA0 THEN MD=24:MD2=24:GOTO *MODES
- 970 IF I>&H9F AND I<&HE0 THEN MD=15:MD2=2:GOTO *MODES
- 980 IF I>&HDF THEN MD=24:MD2=24:GOTO *MODES
- 990 *MODES IF (KAM AND MD)<>MD2 THEN GOSUB *KMODE
- 1000 IF I>&H60 AND I<&H7B THEN C$=CHR$(I-32) ELSE C$=A$
- 1010 LINE(X(ASC(C$)),Y(ASC(C$)))-STEP(X2(ASC(C$)),Y2(ASC(C$))),XOR,7,BF
- 1020 B$=INKEY$:GOSUB *KMODE
- 1030 IF ER THEN M2(ER)=M2(ER)-1:IF M2(ER)=0 THEN LINE(X(M(ER)),Y(M(ER)))-STEP(X2(M(ER)),Y2(M(ER))),XOR,%10,BF:ER=ER-1
- 1040 IF B$="" THEN IF T&<253*SP THEN T&=T&+1:GOTO 1020 ELSE 1020
- 1050 B=ASC(B$):IF B$<>LEFT$(A$,1) THEN LINE(POS(0)*8,CSRLIN*19)-STEP(7,16),PSET,%1,BF:LINE(X(B),Y(B))-STEP(X2(B),Y2(B)),XOR,%10,BF:ER=ER+1:M(ER)=B:M2(ER)=100:IF T&<253*SP THEN T&=T&+1:GOTO 1020 ELSE 1020
- 1060 T&=255-T&/SP
- 1070 X=POS(0):Y=CSRLIN:PRINT " ";:SYMBOL(X*8,Y*19),B$,1,1,%T&
- 1080 T&=0:IF B$=CHR$(13) THEN PRINT
- 1090 LINE(X(ASC(C$)),Y(ASC(C$)))-STEP(X2(ASC(C$)),Y2(ASC(C$))),XOR,7,BF
- 1100 IF A$=CHR$(13) THEN 850
- 1110 IF LEN(A$)=1 THEN A$=CHR$(13) ELSE A$=MID$(A$,2)
- 1120 GOTO 870
- 1130 *MODE GET@(568,464)-(639,479),TY
- 1140 ZSO2=ZSO:ZSO=-(TY(0)<>0)
- 1150 ZNK2=ZNK:ZNK=-(TY(1)<>0)
- 1160 RMA2=RMA:RMA=-(TY(6)>30000)
- 1170 KMD2=KMD
- 1180 KMD=-(TY(26)=1)-(TY(26)=30785)*2-(TY(26)=16400)*3
- 1190 KAM2=KAM:KAM=ZSO*16+ZNK*8+RMA*4+KMD
- 1200 X=POS(0):Y=CSRLIN
- 1210 LOCATE 70,23:PRINT MD$(ZSO)+MD$(ZNK+2)+MD$(RMA+4)+MD$(KMD+6);
- 1220 LOCATE X,Y:RETURN
- 1230 *KMODE GOSUB *MODE
- 1240 IF ((KAM AND MD) AND 3)=(MD2 AND 3) THEN 1300
- 1250 IF (MD2 AND 3)=2 THEN Z=3:GOTO 1290
- 1260 IF (MD2 AND 3)=3 THEN Z=2:GOTO 1290
- 1270 IF ((KAM AND MD) AND 2)=(MD2 AND 2) THEN Z=1:GOTO 1290
- 1280 IF (KAM AND 3)=3 THEN Z=2 ELSE Z=3
- 1290 GOSUB *Z:GOTO *KMODE
- 1300 IF ((KAM AND MD) AND 4)<>(MD2 AND 4) THEN ZZ=1:Z=2:GOTO 1290
- 1310 IF ((KAM AND MD) AND 8)<>(MD2 AND 8) THEN Z=4:GOTO 1290
- 1320 IF ((KAM AND MD) AND 16)<>(MD2 AND 16) THEN Z=5:GOTO 1290
- 1330 RETURN
- 1340 *Z LINE(X(256+Z),Y(256+Z))-STEP(X2(256+Z),Y2(256+Z)),XOR,7,BF
- 1350 IF ZZ THEN LINE(X(262),Y(262))-STEP(X2(262),Y2(262)),XOR,7,BF
- 1360 D$=INKEY$:GOSUB *MODE:IF KAM=KAM2 THEN 1360
- 1370 LINE(X(256+Z),Y(256+Z))-STEP(X2(256+Z),Y2(256+Z)),XOR,7,BF
- 1380 IF ZZ THEN ZZ=0:LINE(X(262),Y(262))-STEP(X2(262),Y2(262)),XOR,7,BF
- 1390 RETURN
- 1400 '****** データだよ ****** 半角英字・カナ文字のみ対応
- 1410 DATA "ASDF JKL;","ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- 1420 DATA "アイウエオ カキクケコ サシスセソ タチツテト ナニヌネノ ハヒフヘホ マミムメモ ヤユヨ ラリルレロ ワン"
- 1430 DATA "コノプログラムハ Basicデ ツクラレテイマス"
- 1434 DATA "ハンカクアルファベット カタカナニ タイオウシテイマス"
- 1440 DATA ""
-